iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0

昨天嘗試過了一個 Docker-Compose 的 Demo ,各位應該都不知道發生了什麼事吧。

首先讓我們回顧一下昨天發生了什麼,好像就是生了一個 docker-compose.yml 然後下個指令就OK了。

那麼接著就是要來看昨天的 docker-compose.yml 幹了什麼事啦。

首先昨天的第一部分 version: '3.8' 是什麼意思呢?這個意思是這個文件的版本,主要是告訴 Docker 引擎該用哪個。不過也不用了解得太詳細,因為這個標籤官方說已經棄用了。詳細的部分請參考一下連結:https://docs.docker.com/compose/compose-file/#compose-file

接著先跳到第三部分 networks ,這部分就是跟前天的內容,不過是用 Docker-Compose 重現出來。用 Docker-Compose 的方式可以同時啟動多個服務,並且指定它們連結到某個 Network ,用這個方式就可以偷懶,不用一個一個指定連接到某個 Network 了。 net 是在 Docker-Compose 中使用的名稱; name 是這個 Network 實際的名稱; driver 是 Network 的類型。

接著是第二部分 services 的區塊,看名稱應該很容易理解吧,就是想要開啟的服務。
內部又分兩個小區塊 backendcachebackend 的部分主要有 7 個小項,build 就是指定 Dockerfile 的路徑; container_name 就是 run 起來之後 Container 的名稱; network 就是要連接的 Network ; ports 是要開啟的 port ,前面是 host 後面是 container ;environment 是設定環境變數,需要注意的是,這邊如果有環境變數是有連結是連到其他 Container 的,需要將名稱設定為 Docker-Compose 中的服務名稱,在這邊就是 redis://cache:6379/0 中的 cachevolumes 還是跟前面 Day 07 的 Valume 一樣;最後的 command 就是 Container 啟動時的指令,需要注意的是 Docker-Compose 會覆蓋掉 Dockerfile 中的 COMMAND 。cache 的部分中只有一個需要特別說明,那就是 image ,主要是直接使用已經打包好的 Image 。

docker-compose.yml 的部分大概就到這邊,接著就是可以一起把它們啟動起來的指令啦。

$ docker-compose up  # run and build

直接 up 一下就可以啟動拉,就算有 Dockerfile 也不用先 build , up 的過程中會自動 build 。

如果需要停止並刪除 Container 可以用下面這個指令。

$ docker-compose down

那麼就先到這邊, Docker-Compose 再需要同時啟動多個 Container 時,真的很好用阿。

大家掰~掰~


上一篇
Day 09 Docker-Compose - 1
下一篇
Day 11 Kubernetes
系列文
30天漫遊雲端之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言